class Solution {
    public:
    /**
* 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
*
*
* @param A string字符串
* @return int整型
*/
    int getLongestPalindrome(string A) {
        // dp[i][j]表示i位置为结尾，最外面的字符是j的回文串？
        // 暴力
        int sz = A.size();
        int ret = 1;
        for(int i = 0; i < sz; ++i)
        {
            int len = 1; // 前面的防止越界不加也过了
            if(i != 0 && i != sz - 1 && A[i - 1] == A[i + 1])
            {
                int left = i - 1, right = i + 1;
                while(left >= 0 && right < sz && A[left--] == A[right++])
                    len += 2;
            }
            // cout << len << endl;
            ret = max(ret, len);
            if(i != 0 && A[i - 1] == A[i])
            {
                len = 0;
                int left = i - 1, right = i;
                while(left >= 0 && right < sz && A[left--] == A[right++])
                    len += 2;
            }
            ret = max(ret, len);
            if(i != sz - 1 && A[i] == A[i + 1])
            {
                len = 0;
                int left = i, right = i + 1;
                while(left >= 0 && right < sz && A[left--] == A[right++])
                    len += 2;
            }
            ret = max(ret, len);
        }
        return ret;
    }
};